export function convertToChineseCurrency(amount: number): string {
    // 定义数字大写映射
    const digits: string[] = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
    // 定义单位
    const units: string[] = ['', '拾', '佰', '仟'];
    const bigUnits: string[] = ['', '万', '亿', '兆'];
    const decimalUnits: string[] = ['角', '分'];

    // 处理金额为负数的情况
    if (amount < 0) {
        return '负' + convertToChineseCurrency(-amount);
    }

    // 分离整数和小数部分
    const [integerPart, decimalPart]: string[] = String(amount).split('.');

    let integerResult: string = '';
    let groupIndex: number = 0;

    // 处理整数部分
    const integerArray: string[] = integerPart.split('').reverse();
    for (let i: number = 0; i < integerArray.length; i++) {
        const digit: number = parseInt(integerArray[i], 10);
        const unitIndex: number = i % 4;
        if (unitIndex === 0 && i > 0) {
            groupIndex++;
        }
        if (digit === 0) {
            // 处理连续零的情况
            if (i > 0 && parseInt(integerArray[i - 1], 10) !== 0) {
                integerResult = '零' + integerResult;
            }
        } else {
            integerResult = digits[digit] + units[unitIndex] + integerResult;
        }
        // 处理每四位一组的单位
        if (unitIndex === 0 && digit !== 0) {
            integerResult = bigUnits[groupIndex] + integerResult;
        }
    }

    // 去除多余的零
    integerResult = integerResult.replace(/零{2,}/g, '零').replace(/零([万亿兆])/g, '$1').replace(/零+$/g, '');
    if (integerResult === '') {
        integerResult = '零';
    }
    integerResult += '元';

    // 处理小数部分
    let decimalResult: string = '';
    if (decimalPart) {
        for (let i: number = 0; i < Math.min(decimalPart.length, 2); i++) {
            const digit: number = parseInt(decimalPart[i], 10);
            if (digit !== 0) {
                decimalResult += digits[digit] + decimalUnits[i];
            }
        }
    }

    // 当小数部分为零或没有小数时
    if (decimalResult === '') {
        decimalResult = '整';
    }

    return integerResult + decimalResult;
}